package co.com.inventarios.logica;

import java.sql.Timestamp;
import java.util.List;

import co.com.inventarios.modelo.Cataventa;
import co.com.inventarios.modelo.Dlluser;
import co.com.inventarios.modelo.Tipoiva;
import co.com.inventarios.persistencia.EntityManagerHelper;
import co.com.inventarios.persistencia.ITipoivaDAO;
import co.com.inventarios.persistencia.QueryCataventaDAO;
import co.com.inventarios.persistencia.QueryDlluserDAO;
import co.com.inventarios.persistencia.QueryTipoivaDAO;
import co.com.inventarios.persistencia.TipoivaDAO;

public class IvaLogica implements IIvaLogica {
	
	Tipoiva miIva = new Tipoiva();
	ITipoivaDAO lDAO = new TipoivaDAO();	

	public void grabarIva(String codigo, String nombre, Double porcentaje,
			Long activo,Dlluser Usuario,Timestamp fechora) throws Exception {
		miIva.setIvacodigo(codigo);
		miIva.setIvanombre(nombre);
		miIva.setIvaporcen(porcentaje);
		miIva.setDlluser(Usuario);
		miIva.setIvalogfec(fechora);
		miIva.setIvaactivo(activo);
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			lDAO.update(miIva);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}	
		
	}
	

	public Tipoiva consultarIva(String propiedad, String valor)
	throws Exception {
		return new QueryTipoivaDAO().findByProperty(propiedad, valor);
	}


	public List<Tipoiva> buscarTodosIvas() throws Exception {
		return new TipoivaDAO().findAll();
	}

	public Tipoiva findById(String valor) throws Exception {
		return new TipoivaDAO().findById(valor);
	}
	
	
	public List<Tipoiva> consultarPropiedadLike(String propiedad, String valor)
			throws Exception {
		return new QueryTipoivaDAO().findByPropertyLike(propiedad, valor);
	}


	public void eliminarIva(String codigo) throws Exception {
		miIva.setIvacodigo(codigo);
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			lDAO.delete(miIva);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}
		
	}

	public Tipoiva findByPropertyActivo(String propiedad,
			String valor) throws Exception {
		return new QueryTipoivaDAO().findByPropertyActivo(propiedad, valor);
	}

	
	public List<Tipoiva> findByPropertyActivoLista(String propiedad) throws Exception {
		return new QueryTipoivaDAO().findByPropertyActivoLista(propiedad);
	}
	

}
